The maintenance agreement is RiverSync's per-device service product: at any moment a device carries exactly one active maintenance agreement — with its own tier, servicing party and expiration — and its whole history is kept. This PRD consolidates the maintenance-agreement requirements that several apps share; the customer reads them in the Portal's Maintenance menu.
The maintenance agreement is created when a device is sold, managed by the customer's org, serviced by a partner or RiverSync, and read on the device. Each app touches the same record.
| App | What it does with the maintenance agreement |
|---|---|
| Portal | Customer reads it — per device, the active agreement + full history, under the Maintenance menu (PTL-3, MNT-1/2) |
| Account | Customer manages the servicing partner's access scope per link (ACC-3, FED-11) |
| Partners | The servicing partner works covered devices within granted scope (PAR-2) |
| Pipeline | Sold as a quote line — model + maintenance-agreement level (PIP-1) |
| Admin | Attached by the won-deal provisioning saga (ADM-2, SVC-11) |
A platform-wide catalog of maintenance tiers — Silver (8×5, next business day) and Gold (24×7, next day) — each with its SLA and description. Every device carries per-device agreement records that reference a tier; each record has its own period (start → expiration), servicing organization and status. Exactly one is active per device at a time (DM-14). The data model names the catalog MaintenanceTier and the per-device record MaintenanceAgreement, owned by the Maintenance service (SVC-MNT).
Single active agreement per device. At any point in time a device has exactly one active maintenance agreement, carrying its tier, servicing organization, period start and expiration date (PeriodEnd). One active per device per period is a model invariant (DM-14); each device renews on its own date (master PRT-2).
Per-device agreement history. Each device shows the full list of its previous maintenance agreements in a table sorted latest to oldest, top down. Each row reads its period, tier, servicing organization, status (active · expired · moved) and source (the deal or renewal that created it). The current active agreement sits above the history as the primary record.
Tiers come from the catalog. Silver (8×5 NBD) · Gold (24×7 ND) — shown on the device and on every history row, and frozen onto a service ticket's SLA at creation (master PRT-5, DM-19). Tiers are never restyled per app; the DS tier marks are canonical.
Renewal & expiration are visible ahead of time. A device's upcoming expiration surfaces before PeriodEnd (the agreement.expiring fact); expired and lapsed states are explicit, never inferred from a blank date. Renewal keeps the same servicing partner and moves the device's own renewal date on (master PRT-2).
Servicing party & move at renewal. Each agreement names its servicing organization (a partner, or RiverSync). At renewal the customer can move a device to a new partner, effective the day after expiry (DM-14); the outgoing agreement closes into history (MNT-2) and a new active record opens. RiverSync never appears as a partner link (master PRT-6, DM-15).
Surfaced in the Portal under Maintenance. The customer-facing menu is Maintenance (renamed from Agreement). It reads-only for the customer: the active agreement is primary, history below (MNT-1/2). Managing the servicing partner's access scope — telemetry · service tickets · sites & visits · invoices & agreements — stays in Account, per link (FED-11, master PRT-3).
Coverage is the agreement's scope. An agreement covers exactly its device for its period; the partner link, the access grant and the partner-scope resolver all derive from active agreements (DM-12, DM-16). The maintenance agreement is the service product; coverage is what it covers — the two are never conflated.
| Version | Date | Changes |
|---|---|---|
| 0.1 | 26 Jun 2026 | First draft — consolidates the maintenance-agreement requirements (MNT-1…7) from master PRT-2/3/5/6 and Portal PTL-3: single active agreement per device with expiration, per-device history sorted latest→oldest, tiers, renewal/expiration visibility, servicing party & move at renewal, the Portal Maintenance menu, and coverage-as-scope. Logs the Agreement → Maintenance rename as an open question (channel-entity conflict). |
| 0.2 | 26 Jun 2026 | Agreement → Maintenance rename completed. Back-end domain renamed (SVC-AGR → SVC-MNT · /agreement → /maintenance · Maintenance Domain), workflow renamed (SPEC-PWF-MNT), and the partner channel registry (PartnerProfile, DistributionAgreement) moved to Sales (SVC-13). The rename open question is resolved. |
| 0.3 | 26 Jun 2026 | Entity rename: MaintenanceAgreement → MaintenanceTier (the Silver · Gold catalog, aligning with the DS TierBadge) and DeviceAgreement → MaintenanceAgreement (the per-device record). §2 updated; requirement meaning unchanged. |